#include <bits/stdc++.h>
using namespace std;
int n, m; bool sw;
vector<pair<int, int>> Ans;
int main(){
  freopen("bishop.in", "r", stdin);
  freopen("bishop.out", "w", stdout);
  cin.tie(nullptr)->sync_with_stdio(false);
  cin >> n >> m;
  if(n < m) swap(n, m), sw = 1;
  if(n == m){
    if(n == 1) Ans.emplace_back(1, 1);
    else for(int i = 1; i < n; i++) Ans.emplace_back(i, 1), Ans.emplace_back(i, m);
  } else {
    for(int i = 1; i <= m; i++) Ans.emplace_back(1, i), Ans.emplace_back(n, i);
    int d = 1 + !(m & 1);
    for(int i = m / 2 + 2; i < n - m / 2; i += d) for(int j = 0; j < d; j++)
      Ans.emplace_back(i, (m + 1) / 2 + j);
  }
  cout << Ans.size() << '\n';
  for(auto [x, y]: Ans) cout << (sw? y: x) << ' ' << (sw? x: y) << '\n';
  return 0;
}
